#ifndef __QYQ_MODULE_CLOCK_H_
#define __QYQ_MODULE_CLOCK_H_
#include "chip_include.h"
#ifndef __QYQ_MODULE_CLOCK_C_
#define QYQ_MODULE_CLOCK_EXT extern
#else
#define QYQ_MODULE_CLOCK_EXT
#endif

// 数据
typedef struct
{
    int16_t qyq_module_time_data_sec;  /* 秒，范围从 0 到 59                           */
    int16_t qyq_module_time_data_min;  /* 分，范围从 0 到 59                           */
    int16_t qyq_module_time_data_hour; /* 小时，范围从 0 到 23                         */
    int16_t qyq_module_time_data_mday; /* 一月中的第几天，范围从 1 到 31                */
    int16_t qyq_module_time_data_mon;  /* 月，范围从 0 到 11                           */
    int16_t qyq_module_time_data_year; /* 自 1900 年起的年数                           */
    int16_t qyq_module_time_data_wday; /* 一周中的第几天，范围从 1 到 7                 */
    int16_t qyq_module_time_data_yday; /* 一年中的第几天，范围从 0 到 365  暂时不支持    */
} qyq_module_time_data_t;

// 功能
typedef struct qyq_module_time_type
{
    qyq_module_time_data_t *qyq_module_time_data;

    int8_t (*qyq_module_time_count)(struct qyq_module_time_type *this); // 用于时钟计数
    int8_t (*qyq_module_set_time)(struct qyq_module_time_type *this, qyq_module_time_data_t *qyq_module_time_data);
    int8_t (*qyq_module_get_time)(struct qyq_module_time_type *this,qyq_module_time_data_t *qyq_module_time_data);
} qyq_module_time_type_t;

QYQ_MODULE_CLOCK_EXT int8_t qyq_module_time_create(qyq_module_time_type_t *this, qyq_module_time_data_t *qyq_module_time_data);

#endif
